RubyMotionKaigi 2013
概要
RubyMotion Kaigi 2013
http://connpass.com/event/2095/
に参加してきた。肋骨折られるのヤダですし。
蛇足、Why RubyMotion: for me
強固な言語で作られた基盤の上に、柔軟性の高い言語を置く、っていうアプローチがいいなーって思っているなど。
Javaの型システムの上にJS走らせる某AltJSとか、
C++の横でプラグイン基盤としてPython走らせられるSublimeTextとか、
ガッチリ基礎があってその上で表現力豊かだったり楽に書ける言語で作るの良いよね~。
RubyMotionKaigiの話 基調講演トピック的な
by Laurentさん
Static analysys
静的解析、LLVMみたいなのをやるつもり、と。
LLVMが出来るところまで行けると、もうRuby,,,だっけ? ってくらい判りやすくなるんだろうな。
2.0対応
refinementsとかRuby2.0の機能もサポートするよ
RubyMotion 2.0系
by 「契約してMacRubyのコミッタになってよ!」でMacRubyにjoinしたwatsonさん。
比較、値渡しなどの親和性
RubyMotionはObj-C runtimeを利用してRubyを実装しているので、Obj-CとRuby間の値の関係がストレートに出来ている
MacRubyとの「差」
JIT(MacRuby)か、preCompile(RubyMotion)
MacRubyで書いたアプリをRubyMotionで書き直すと2倍くらい速くなる
OS X対応
わーいゾーンですよ。ちょっとした用をはたすにはアプリ作ると良いのですよ!
高速化
gemとかのキャッシュ持ったよ!
rake時に全消しされてたのから、キャッシュ化することでその分の時間をryだよ!
weak reference
Q,sugar cubeについて
is 何?
便利ライブラリ集。ObCで書くと長いコードがRubyのシンタックスシュガーで解決できる。
why not include?
RubyMotuonはthinなものにしてるので、そのへんの便利な物は
組み込まないよ!
開発者の視点から
by Naoya itoさん
最近の事例
37SignalsがiOSApp作ったよね
→実際使ってる。助かってる。
よくある質問
Obj-Cわからなくても使えますか? YES
iOSの知識が無くても使えますか? NO!
CocoaTouchのAPIを呼ぶのでな!
Ruby脳でiOS App作れると思った?→残念 さやかちゃんでした
tapもKVOも使える
ブリッジ系とは違うのだよ、的な。
Obj-Cの上でRubyが動いているので。
なるほどなー確かに筋がいい。
ARC風
メモリ管理は独自、not ARC、 not Ruby GC
中身はリファレンスカウンタ方式
Tips:ライフタイムが長そうなオブジェクトはインスタンス変数に入れる=強参照になる
オブジェクトのライフ周りにテを突っ込んでるの、かなり大変そうだけど、
Tipsがあることで「もしかしてこれが原因かも→試す→あってた、これだ」みたいな原因チェック我で来やすくなると思うので、
イタダキ。
RubyMotionのここが素晴らしい!
Vi■、Emacs or TextMate とかで使えるんだよ!(抄訳)
RubyMoとgems
sugarCubeべんり
NanoStoreInMotion
iOS向けのkvsのコントロールができる。ActiveRecord風インターフェース!
依存関係もあり
→rubymotion-wrappers.com に行け
Tips
・ビルドシステムまわりはOSSでRubyなのでハックしやすい。のぞくと良いよ
・Dashを使ってドキュメント見ると良いよ
・テストもいろんなツールがあるよ!
クソムシに気を取られてしまってあやふや
iOS使いがRubyMotionを使ってみたぜ!的なお話
by @mfks17 さん
RubyMine5からRubyMotion supportが始まったよ!
breakポイントにも対応
テストは書いた方が良い
三日前の自分は他人
もくもく会がすぐ埋まってしまうので勉強会を作る!
すげー
質疑応答
アクティブユーザーってどのくらいいるの?
→Laurentさん:正確にはしらぬ。
ユーザー数としては、数千人。今年中に1万人は超えると思う、とのこと。
アプリ数は?
→Laurentさん:しらぬ。 報告されないとわからぬし。 週一本は出てるんじゃないだろうか。
LT
RubyMotion in IRC
by @ninjinkunさん
テキストベースに向いてると思ったので、IRCアプリをRubyMotionで作ってみた
このアプリでの、「あの辺から持ってきたら動いた」話は、なんか今後もちょくちょく思い出す気がする。
扱う対象が同じで、実現するための手法も特定の形があるものなら、似通ったのそのまま持ってこれるよなーとか。
最近WebSocketで同じ感覚にあっている。